package main

//import (
//	"fmt"
//	"strings"
//	"time"
//)
//
//type LogProcess struct {
//	rc chan string 		// 读取channel, 从读取模块到解析模块传递数据
//	wc chan string 		// 写入channel, 从解析模块到写入模块传递数据
//	path string			// 读取文件的路径
//	influxDBDsn string	// influx data source
//}
//
//// 读取模块
//func (l *LogProcess) ReadFromFile() {
//	line := "message"
//	l.rc <- line					// 写入数据到rc channel
//}
//
//// 解析模块
//func (l *LogProcess) Process() {
//	data := <- l.rc					// 从rc channel读取数据
//	l.wc <- strings.ToUpper(data)	// 处理数据，并写入wc channel
//}
//
//// 写入模块
//func (l *LogProcess) WriteToInfluxDB() {
//	fmt.Println(<- l.wc)				// 从wc channel读取数据
//}
//
//func main()  {
//	// 初始化结构体
//	lp := &LogProcess{
//		// 使用make()函数初始化channel
//		rc: make(chan string),
//		wc: make(chan string),
//		path: "/tmp/access.log",
//		influxDBDsn: "username&password..",
//	}
//
//	// 使用go关键字创建goroutine, 使三个协程并发执行
//	//go (*lp).ReadFromFile()	// 通过引用类型调用结构体中的函数
//	go lp.ReadFromFile()
//	go lp.Process()
//	go lp.WriteToInfluxDB()
//
//	// main goroutine睡眠1s, 等待其他goroutine的运行
//	time.Sleep(1*time.Second)
//}
